package com.zcsy.commons.util;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.springframework.util.CollectionUtils;

/**
 * list集合工具类
 * @author tanghan barbadosliy@163.com
 * @version 2015年5月20日
 * @see ListUitl
 * @since
 */
public class ListUitl {

	/**
	 * 去掉列表里相同的元素.
	 * @param srcList 原列表
	 * @return 去掉了相同元素的列表
	 */
	public static List<String> removeSameElement(final List<String> srcList) {
		final List<String> newList = new ArrayList<String>();
		if (CollectionUtils.isEmpty(srcList)) {
			return newList;
		}
		
		final Map<String, String> stringMap = new HashMap<String, String>();
		for (String s : srcList) {
			if (stringMap.containsKey(s)) {
				continue;
			}
			
			stringMap.put(s, s);
			newList.add(s);			
		}
		
		return newList;
	}
	
	/**
	 * 对于不能在数据库分页的数据，在拿到list后进行分页
	 * @param list
	 * @param pageNo
	 * @param pageSize
	 * @return
	 */
	public static <T> List<T> getListPage(List<T> list,int pageNo,int pageSize){
		int begin = (pageNo-1)*pageSize;
		int end = (begin+pageSize)<=list.size() ? (begin+pageSize) :list.size();
		if(begin > list.size()-1){
			list.clear();
			return list;
		}
		
		//如果pageSize为0，则默认返回全部
		if(pageNo == 0 || pageSize==0){
			return list;
		}
		return list.subList(begin, end);
	}
}
